package com.extendy.onlyofficerapiddeployment.service;

import com.extendy.onlyofficerapiddeployment.entity.FileEntity;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

@Service
public class FileService {

    /**
     * 文件列表
     */
    private final static Map<String, FileEntity> fileMap = Map.of(
            "test.xlsx", new FileEntity("1", "test.xlsx", "xlsx", "http://192.168.43.164:8080/file/test.xlsx"),
            "test.docx", new FileEntity("2", "test.docx", "docx", "http://192.168.43.164:8080/file/test.docx"),
            "test.pptx", new FileEntity("3", "test.pptx", "pptx", "http://192.168.43.164:8080/file/test.pptx")
    );

    /**
     * OnlyOffice的保存文件的机制是靠回调接口保存文件的。文件一但保存成功。再次以上一次的key和最新的文档url地址为参数打开编辑器时，
     * 编辑器服务根据key去找redis中去找缓存并进行验证判断文件的版本是否发生了变化，如果一样就从缓存中读取文档数据。否则提示文件版本
     * 发生变化的提示。
     */
    public FileEntity getFile(String fileName) {
        FileEntity fileEntity = fileMap.get(fileName);
        fileEntity.setKey(fileEntity.getFileId() + System.currentTimeMillis());
        return fileEntity;
    }

    public List<FileEntity> getFileList() {
        return List.of(fileMap.values().toArray(new FileEntity[0]));
    }
}
